﻿using System;
using GPainter.Data;

namespace GPainter.Events
{
    public class NodeAddEventArgs : EventArgs
    {
        public string Id;
        public string NodeType;

        public NodeAddEventArgs(string id,string nodeType)
        {
            Id = id;
            NodeType = nodeType;
        }

    }


    public class NodeMoveEventArgs:EventArgs
    {
        public string Id;
        public System.Windows.Point Point;
       
        public NodeMoveEventArgs(string id,System.Windows.Point point)
        {
            Id = id;
            Point = point; 
        }

    }

    public class EdgeAddEventArgs : EventArgs
    {
        public string SourceNodeId { get;set; }
        public string TargetNodeId { get; set; }
        public string EdgeId { get; set; }
        public string Text { get; set; }
        public string TypeName { get; set; }

        public EdgeAddEventArgs(string edgeId, string sourceNodeId, string targetNodeId, string typeName)
        {
            SourceNodeId = sourceNodeId;
            TargetNodeId = targetNodeId;
            EdgeId = edgeId;
            TypeName = typeName;
        }

    }
    public class EdgeDeleteEventArgs : EventArgs
    {
        
        public string EdgeId { get; set; }
        public string SourceNodeId { get; set; }
        public string TargetNodeId { get; set; }
        public string Text { get; set; }

        public EdgeDeleteEventArgs(string edgeId, string sourceNodeId, string targetNodeId, string text)
        {
            EdgeId = edgeId;
            SourceNodeId = sourceNodeId;
            TargetNodeId = targetNodeId;
            Text = text;
        }

    }




    public class NodeDeleteEventArgs : EventArgs
    {
        public string Id;

        public NodeDeleteEventArgs(string id)
        {
            Id = id;
        }

    }

    public class OperationEventArgs : EventArgs
    {
        public string Operation;

        public OperationEventArgs(string operation)
        {
            Operation = operation;
        }
    }

    public class NodeScrollEventArgs : EventArgs
    {
        public Direction X;
        public Direction Y;

        public NodeScrollEventArgs(Direction xDir, Direction yDir)
        {
            X = xDir;
            Y = yDir;
        }
    }

    public class RefreshNodeParamsEventArgs : EventArgs
    {
        public string Id;
        public double Width;

        public RefreshNodeParamsEventArgs(string id, System.Windows.Point point)
        {
            Id = id;
         
        }

    }
}
